package mMap.hashMapDemo;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
/**
 * 遍历 map
 * @author zybw-kf01
 *
 */
public class MapDemo {
	public static void main(String[] args) {
		Map map = new HashMap<String, String>();
		System.out.println("init  "+map.size());
		map.put("1", "a");
		map.put("2", "b");
		map.put(null, "b");
		map.put(null, "c");
		map.put(null, null);
		System.out.println("init2  "+map.size()+ map.get(null));
		Set keySet = map.keySet();
		// //第一种：普遍使用，二次取值
		// System.out.println("通过Map.keySet遍历key和value：");
		// for (int i = 0; i < map.keySet().size(); i++) {
		// map.keySet();
		// }
		// for (String key : map.keySet()) {
		// System.out.println("key= "+ key + " and value= " + map.get(key));
		// }

		// 第二种
		System.out.println("通过Map.entrySet使用iterator遍历key和value：");
		Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
		StringBuffer a = new StringBuffer();

		while (it.hasNext()) {

			Map.Entry<String, String> entry = it.next();
			System.out.println("key= " + entry.getKey() + " and value= "
					+ entry.getValue());
			a.append(entry.getKey() + "=" + entry.getValue() + "&");
		}
		String strsb = a.toString();
		System.out.println(a.toString());
		if (strsb.contains("&") && strsb.endsWith("&")) {
			String substring = strsb.substring(0, strsb.length() - 1);
			System.out.println(strsb.length() - 1);
			System.out.println(substring);
		}

		//
		// //第三种：推荐，尤其是容量大时
		// System.out.println("通过Map.entrySet遍历key和value");
		// for (Map.Entry<String, String> entry : map.entrySet()) {
		// System.out.println("key= " + entry.getKey() + " and value= " +
		// entry.getValue());
		// }

		// //第四种
		// System.out.println("通过Map.values()遍历所有的value，但不能遍历key");
		// for (String v : map.values()) {
		// System.out.println("value= " + v);
		// }
	}
}
